/**
 * access_token
 * 自动过期消失
 * @authors 杨兴洲（of2502）
 * @date    2017/3/28 18:23
 * @version 1.0
 */

import { model, Schema } from 'mongoose';
const expires_in = 7000;     //单位：秒  一小时四十分钟后过期
const TokenSchema = new Schema(
  {
    userID: String,
    token: String,
    updatedAt: { type: Date, expires: expires_in }
  },
  { timestamps: true }
);

TokenSchema.index({ updatedAt: 1 }, { expireAfterSeconds: expires_in });

TokenSchema.virtual('expireAt').get(function() {
  return new Date(+this.updatedAt + expires_in * 1000);
});
//确保查询结果以json返回时包含虚拟字段
TokenSchema.set('toJSON', { getters: true, virtual: true });

export default model('Token', TokenSchema);
